/**
 * 验证小数点后两位及多个小数
 */
export function isMoney(money) {
	var reg = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/
	if (reg.test(money)) {
		return true
	} else {
		return false
	}
}

/**
 * 验证手机号码
 */
export function checkPhone(phone) {
	var reg = /^1(3|4|5|6|7|8|9)\d{9}$/
	if (reg.test(phone)) {
		return true
	} else {
		return false
	}
}

/**
 * 函数防抖 (只执行最后一次点击)
 * @param fn
 * @param delay
 * @returns {Function}
 * @constructor
 */
export const Debounce = (fn, t) => {
	const delay = t || 500
	let timer
	return function() {
		const args = arguments
		if (timer) {
			clearTimeout(timer)
		}
		timer = setTimeout(() => {
			timer = null
			fn.apply(this, args)
		}, delay)
	}
}

/**
   * 将一级的数据结构处理成树状数据结构
   * @param {Object} obj {key, pKey, data}
   *  @param obj.key  字段名称 比如id
   *  @param obj.pKey 父字段名称 比如 pid
   *  @param obj.rootPValue 根节点的父字段的值
   *  @param obj.data 需要处理的数据
   *  @param obj.jsonData 是否深复制数据（默认是true）
   * @return {Array} arr
   */
export function getTreeArr(obj) {
	if (!Array.isArray(obj.data)) {
	  console.log('getTreeArr=>请传入数组')
	  return []
	}
	obj.jsonData = obj.jsonData === false ? obj.jsonData : true
	const arr = obj.jsonData ? JSON.parse(JSON.stringify(obj.data)) : obj.data
	const arr1 = []
	// 将数据处理成数状结构
	arr.forEach(item => {
	  let index = 0
	  item.children = []
	  arr.forEach(item1 => {
		  // console.log('item1',item1)
		// 得到树结构关系
		if (item[obj.key] === item1[obj.pKey]) {
		  item.children.push(item1)
		}
		// 判断根节点
		if (item1[obj.key] !== item[obj.pKey]) {
		  index++
		}
	  })
	  // 没传入根节点，根据当前数据结构得到根节点
	  if (!('rootPValue' in obj) && index === arr.length) {
		arr1.push(item)
	  }
	})
	// 传入根节点，根据传入的根节点组成树结构
	if ('rootPValue' in obj) {
	  arr.forEach(item => {
		if (item[obj.pKey] === obj.rootPValue) {
		  arr1.push(item)
		}
	  })
	}
	return arr1
}

export function flatten(tree) {
  let node, list = [...tree], nodes = []
  while (node = list.shift()) {
	  if(Array.isArray(node.children) && node.children.length == 0){
		delete node.children  
	  }
	  if(node.sid == 0){
		  nodes.push(node)
	  }      
	  node.children && list.unshift(...node.children)
	  
  }
  return nodes
}

/**
 * 处理服务器扫码带进来的参数
 * @param string param 扫码携带参数
 * @param string k 整体分割符 默认为：&
 * @param string p 单个分隔符 默认为：=
 * @return object
 * 
 */
// #ifdef MP
export function getUrlParams(param, k, p) {
	if (typeof param != 'string') return {};
	k = k ? k : '&'; //整体参数分隔符
	p = p ? p : '='; //单个参数分隔符
	var value = {};
	if (param.indexOf(k) !== -1) {
		param = param.split(k);
		for (var val in param) {
			if (param[val].indexOf(p) !== -1) {
				var item = param[val].split(p);
				value[item[0]] = item[1];
			}
		}
	} else if (param.indexOf(p) !== -1) {
		var item = param.split(p);
		value[item[0]] = item[1];
	} else {
		return param;
	}
	return value;
}
/**根据格式组装公共参数
 * @param {Object} value
 */
export function formatMpQrCodeData(value){
	let values = value.split(',');
	let result = {};
	if(values.length === 2){
		let v1 = values[0].split(":");
		if (v1[0] === 'uid') {
			result.spread = v1[1];
		} else{
			result.id = v1[1];
		}
		let v2 = values[1].split(":");
		if (v2[0] === 'uid') {
			result.spread = v2[1];
		}else{
			result.id = v2[1];
		}
	}else{
		result = values[0].split(":")[1];
	}
	return result;
}
// #endif
